package com.dao;

import com.entity.GroupUser;
import org.omg.PortableInterceptor.INACTIVE;

import java.util.List;

public interface GroupUserDao {
    /**
     * 按照id查询群成员信息
     * @param id
     * @return
     */
    GroupUser getById(Integer id);

    /**
     * 按照用户id查询群，用户在群的消息未读数量
     * @param userId
     * @return
     */
    List<GroupUser> getGroupUserByUserId(Integer userId);

    /**
     * 按照群id查询所有群成员信息
     * @param groupId
     * @return
     */
    List<GroupUser> getAllByGroupId(Integer groupId);

    /**
     * 查询未读消息数量
     * @param userId
     * @param groupId
     * @return
     */
    Integer getNotReadCount(Integer userId, Integer groupId);

    /**
     * 按照用户id与群id查询用户信息
     * @param userId
     * @param groupId
     * @return
     */
    GroupUser getByUserIdWithGroupId(Integer userId,Integer groupId);

    /**
     * 按照用户id与群id修改群未读消息
     * @param notReadCount
     * @param userId
     * @param groupId
     */
    void editNotReadCount(Integer notReadCount,Integer userId, Integer groupId);
    /**
     * 添加群成员
     * @param groupUser 成员信息
     * @return Boolean
     */
    Boolean addGroupUser(GroupUser groupUser);

    /**
     * 修改群成员信息
     * 可修改信息为：群内备注、禁言、群角色
     * 根据ID进行修改
     *
     * @param groupUser 成员信息
     * @return Boolean
     */
    Boolean editGroupUser(GroupUser groupUser);

    /**
     * 根据ID删除
     *
     * @param id ID
     * @return Boolean
     */
    Boolean delByIdGroupUser(Integer id);

    /**
     * 根据群id删除
     *
     * @param groupId
     * @return Boolean
     */
    Boolean delByGroupId(Integer groupId);

}
